package domain.server;

import game.IGameData;
import application.config.Config.Status;

/**
 * The IGameProtocol includes method signatures general enough not to limit the
 * game itself. It offers a flexible way to override methods and send data by
 * the game's requirements.
 */
public interface IGameProtocol {

	public void startGame();
	
	public void sendObject(Object object);

	public Object receiveObject();

	public void sendCommand(Status command);

	public int receiveCommand();

	public void joinGame(IGameData gameData);

	public void quitGame();

	public void spectateGame(IGameData gameData);

}
